package com.cskaoyan.mapper;

import com.cskaoyan.vo.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {

    // 根据Id查询Student
    Student selectStudentById(@Param("id") Integer id);

    // if标签的使用
    // 假如传入的score > 60 ,那么查询 比score得分高的同学
    // 假如传入的score <= 60 , 那么查询比score得分低的同学
    List<Student> selectStudentListByScore(@Param("score") Integer score);

    // 根据条件去查询对应的StudentList
    // 传入一个student对象，
    // 假如student对象的成员变量有值，那么我们就根据对应的成员变量去匹配
    // 假如对应的成员变量没有值，那么我们就不看这个条件
    List<Student> selectStudentListBySelective(@Param("student") Student student);

    // 假如传入的id大于10，那么我们就查询id比10大的学生
    // 否则查询id小于等于10 的学生
    List<Student> selectStudentListById(@Param("id") Integer id);

    // 修改student对象里面值，根据Id去修改
    // 假如student里面成员变量有值，我们就去修改
    // 假如没有值，就不修改
    int updateStudentByIdSelective(@Param("student") Student student);

    int updateStudentByIdSelectiveUseSet(@Param("student") Student student);

    // 批量插入 有注解
    int insertStduentList(@Param("studentList") List<Student> studentList);

    // 批量插入 没有注解
    int insertStduentListWithoutParam(List<Student> studentList);

    // 批量插入 传入数组 有注解
    int insertStudentArray(@Param("studentArray") Student[] students);

    // 批量插入 传入数组 没有注解
    int insertStudentArrayWithParam(Student[] students);


    // 根据Id的List去查询 StudentList
    List<Student> selectStudentListByIds(@Param("ids") List<Integer> ids);

}

